import axios from 'axios';

// 创建 axios 实例
const api = axios.create({
  baseURL: 'http://localhost:3005/api',
  timeout: 5000,
});

// 请求拦截器
api.interceptors.request.use(
  (config) => {
    // 可以在这里添加认证 token 等
    return config;
  },
  (error) => {
    return Promise.reject(error);
  }
);

// 响应拦截器
api.interceptors.response.use(
  (response) => {
    return response;
  },
  (error) => {
    console.error('API Error:', error.response?.data || error.message);
    return Promise.reject(error);
  }
);

// Todo 相关 API
export const todoAPI = {
  // 获取待办事项列表
  getTodos: (params = {}) => api.get('/todos', { params }),
  
  // 创建新的待办事项
  createTodo: (todo) => api.post('/todos', todo),
  
  // 获取单个待办事项
  getTodo: (id) => api.get(`/todos/${id}`),
  
  // 更新待办事项
  updateTodo: (id, todo) => api.put(`/todos/${id}`, todo),
  
  // 删除待办事项
  deleteTodo: (id) => api.delete(`/todos/${id}`),
  
  // 切换完成状态
  toggleComplete: (id) => api.patch(`/todos/${id}/complete`),
  
  // 获取日历视图数据
  getCalendarTodos: (params = {}) => api.get('/todos/calendar', { params }),
  
  // 批量操作
  batchTodos: (action, ids) => api.post('/todos/batch', { action, ids }),
};

// AI 相关 API
export const aiAPI = {
  // 获取今日总结
  getDailySummary: () => api.get('/ai/daily-summary'),
  
  // 获取智能排序建议
  getSmartSort: () => api.get('/ai/smart-sort'),
  
  // 生成提醒文案
  generateReminder: (todoId) => api.post('/ai/generate-reminder', { todoId }),
};

export default api;